package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.Zhuanjia;
import com.ruoyi.system.domain.ZhuanjiaCustom;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 专家信息Mapper接口
 *
 * @author ruoyi
 * @date 2022-12-06
 */
@Mapper
public interface ZhuanjiaMapper
{
    /**
     * 查询专家信息
     *
     * @param zhuanjiaid 专家信息主键
     * @return 专家信息
     */
    public Zhuanjia selectZhuanjiaByZhuanjiaid(String zhuanjiaid);

    /**
     * 查询专家信息列表
     *
     * @param zhuanjia 专家信息
     * @return 专家信息集合
     */
    public List<Zhuanjia> selectZhuanjiaList(Zhuanjia zhuanjia);

    List<Zhuanjia> selectZhuanjiaByDeptID(@Param("oldDeptId") String oldDeptId, @Param("deptId") String deptId);
    /**
     * 新增专家信息
     *
     * @param zhuanjia 专家信息
     * @return 结果
     */
    public int insertZhuanjia(Zhuanjia zhuanjia);

    /**
     * 修改专家信息
     *
     * @param zhuanjia 专家信息
     * @return 结果
     */
    public int updateZhuanjia(Zhuanjia zhuanjia);

    /**
     * 删除专家信息
     *
     * @param zhuanjiaid 专家信息主键
     * @return 结果
     */
    public int deleteZhuanjiaByZhuanjiaid(String zhuanjiaid);

    /**
     * 批量删除专家信息
     *
     * @param zhuanjiaids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZhuanjiaByZhuanjiaids(String[] zhuanjiaids);

    /**
     * 查询专家信息列表custom
     *
     * @param zhuanjia 专家信息
     * @return map
     */
    @MapKey("")
    public List<Map<String,Object>> selectZhuanjiaListCustom(ZhuanjiaCustom zhuanjia);

    public int countZhuanjiaListCustom(ZhuanjiaCustom zhuanjia);
    /**
     * 专家管理查询统计列表
     *
     * @param zhuanjia 专家信息
     * @return map
     */
    public List<Map<String,Object>> chaxuntongjilist(@Param("deptid") String deptid,
                                                     @Param("zhuanjia")String zhuanjia,
                                                     @Param("danwei")String danwei,
                                                     @Param("danweileixing")String danweileixing,
                                                     @Param("cengji") String cengji,
                                                     @Param("gongzuodanwei") String gongzuodanwei,
                                                     @Param("guoji") String guoji,
                                                     @Param("zhengjianleixing")String zhengjianleixing,
                                                     @Param("zhengjianhaoma")String zhengjianhaoma,
                                                     @Param("ruxuannianfen")String ruxuannianfen,
                                                     @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                     @Param("zhuanjiazhuangtaibiandongshijian")String zhuanjiazhuangtaibiandongshijian,
                                                     @Param("startindex")int startindex,@Param("pagesize") int pagesize);
    public int chaxuntongjilistCount(@Param("deptid") String deptid,
                                                     @Param("zhuanjia")String zhuanjia,
                                                     @Param("danwei")String danwei,
                                                     @Param("danweileixing")String danweileixing,
                                                     @Param("cengji") String cengji,
                                     @Param("gongzuodanwei") String gongzuodanwei,
                                                     @Param("guoji") String guoji,
                                                     @Param("zhengjianleixing")String zhengjianleixing,
                                                     @Param("zhengjianhaoma")String zhengjianhaoma,
                                                     @Param("ruxuannianfen")String ruxuannianfen,
                                                     @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                     @Param("zhuanjiazhuangtaibiandongshijian")String zhuanjiazhuangtaibiandongshijian);
    /**
     * 专家管理查询统计列表 单位普通管理员
     *
     * @param zhuanjia 专家信息
     * @return map
     */
    public List<Map<String,Object>> chaxuntongjilistCommon(@Param("deptid") String deptid,
                                                     @Param("zhuanjia")String zhuanjia,
                                                     @Param("danwei")String danwei,
                                                     @Param("danweileixing")String danweileixing,
                                                     @Param("cengji") String cengji,
                                                           @Param("gongzuodanwei") String gongzuodanwei,
                                                     @Param("guoji") String guoji,
                                                     @Param("zhengjianleixing")String zhengjianleixing,
                                                     @Param("zhengjianhaoma")String zhengjianhaoma,
                                                     @Param("ruxuannianfen")String ruxuannianfen,
                                                     @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                     @Param("zhuanjiazhuangtaibiandongshijian")String zhuanjiazhuangtaibiandongshijian,
                                                     @Param("startindex")int startindex,@Param("pagesize") int pagesize);
    public int chaxuntongjilistCommonCount(@Param("deptid") String deptid,
                                                           @Param("zhuanjia")String zhuanjia,
                                                           @Param("danwei")String danwei,
                                                           @Param("danweileixing")String danweileixing,
                                                           @Param("cengji") String cengji,
                                           @Param("gongzuodanwei") String gongzuodanwei,
                                                           @Param("guoji") String guoji,
                                                           @Param("zhengjianleixing")String zhengjianleixing,
                                                           @Param("zhengjianhaoma")String zhengjianhaoma,
                                                           @Param("ruxuannianfen")String ruxuannianfen,
                                                           @Param("zhuanjiazhuangtai")String zhuanjiazhuangtai,
                                                           @Param("zhuanjiazhuangtaibiandongshijian")String zhuanjiazhuangtaibiandongshijian);

    Map<String, Integer> Countchaxuntongji(String deptid);
    Map<String, Integer> Countchaxuntongjicommon(String deptid);
}
